package com.caregiver.watch.business.care.service;

import com.caregiver.watch.business.care.model.vo.ActivityDataVo;
import com.caregiver.watch.business.care.model.vo.BloodOxygenDetailDataVo;
import com.caregiver.watch.business.care.model.vo.HeartRriDetailDataVo;
import com.caregiver.watch.business.care.model.vo.SportDataDetailVo;
import com.caregiver.watch.business.care.model.vo.TemperatureDetailDataVo;
import com.caregiver.watch.business.care.model.vo.TodaySportDataVo;
import com.caregiver.watch.business.care.model.vo.BloodPressureDetailDataVo;
import com.caregiver.watch.business.care.model.vo.EcgDetailDataVo;
import com.caregiver.watch.business.care.model.vo.HealthDataVo;
import com.caregiver.watch.business.care.model.vo.HeartRateDetailVo;
import com.caregiver.watch.business.care.model.vo.LocationDataVo;
import com.caregiver.watch.business.care.model.vo.SleepDetailVo;
import com.caregiver.watch.business.care.model.vo.SportDataVo;
import com.caregiver.watch.business.care.model.vo.StressValueDetailDataVo;
import com.caregiver.watch.business.care.model.vo.TraceVo;
import com.caregiver.watch.business.care.model.vo.WeekActivityDataVo;
import com.caregiver.watch.business.care.model.vo.WeekSleepDetailVo;

import java.util.List;

/**
 * @Description: 健康服务
 * @Author 疆戟
 * @Date 2025/9/20 22:10
 * @Version 1.0
 */
public interface HealthService {
    /**
     * 获取用户当天的运动数据
     * @return
     */
    TodaySportDataVo getTodaySportData(String deviceUuid);

    /**
     * 获取用户运动数据
     * @param deviceUuid
     * @return
     */
    List<SportDataVo> getSportData(String deviceUuid);

    /**
     *  获取用户定位数据
     * @param deviceUuid
     * @return
     */
    LocationDataVo getLocationData(String deviceUuid);

    /**
     * 查询用户轨迹
     * @param deviceUuid
     * @param startTime
     * @param endTime
     * @return
     */
    TraceVo queryTrace(String deviceUuid, String startTime, String endTime);

    /**
     * 获取用户健康数据
     * @param deviceUuid
     * @return
     */
    HealthDataVo getHealthData(String deviceUuid);

    /**
     * 获取用户睡眠数据
     * @param deviceUuid
     * @return
     */
    SleepDetailVo getSleepDetailData(String deviceUuid, String dataTime);

    /**
     * 获取用户一周的睡眠详情数据
     * @param deviceUuid
     * @param startTime
     * @param endTime
     * @return
     */
    WeekSleepDetailVo getWeekSleepDetailData(String deviceUuid, String startTime, String endTime);

    /**
     * 获取用户心率详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    HeartRateDetailVo getHeartRateDetailData(String deviceUuid, String dataTime);

    /**
     * 获取用户血压详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    BloodPressureDetailDataVo getBloodPressureDetailData(String deviceUuid, String dataTime);

    /**
     * 获取用户压力详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    StressValueDetailDataVo getStressValueDetailData(String deviceUuid, String dataTime);

    /**
     * 获取用户心电图详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    EcgDetailDataVo getEcgDetailData(String deviceUuid, String dataTime);

    /**
     * 查询轨迹数据是否存在
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    List<Integer> queryExistTraceDate(String deviceUuid, String dataTime);

    /**
     * 获取用户血氧详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    BloodOxygenDetailDataVo getBloodOxygenDetailData(String deviceUuid, String dataTime);

    /**
     * 获取用户体温详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    TemperatureDetailDataVo getTemperatureDetailData(String deviceUuid, String dataTime);

    /**
     * 获取用户运动详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    SportDataDetailVo getSportDataDetail(String deviceUuid, String dataTime);

    /**
     * 获取用户运动详情数据
     * @param deviceUuid
     * @param startTime
     * @param endTime
     * @return
     */
    SportDataDetailVo getSportDataDetailV2(String deviceUuid, String startTime, String endTime);

    /**
     * 获取用户活动数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    ActivityDataVo getActivityData(String deviceUuid, String dataTime);

    /**
     * 获取用户一周的活动数据
     * @param deviceUuid
     * @param startTime
     * @param endTime
     * @return
     */
    WeekActivityDataVo getWeekActivityData(String deviceUuid, String startTime, String endTime);

    /**
     * 获取用户心率详情数据
     * @param deviceUuid
     * @param dataTime
     * @return
     */
    HeartRriDetailDataVo getHeartRriDetailData(String deviceUuid, String dataTime);
}
